package foo;

import facade.DesarrolloHumanoFacade;
import facade.exception.AlreadyExistsFormularioException;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Calendar;
import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import valueObject.ActividadVO;
import valueObject.FormularioVO;
import valueObject.PuntoDeEncuentroVO;
import valueObject.TipoDeContratacionVO;

public class Inicializacion extends HttpServlet {

    @EJB
    DesarrolloHumanoFacade desarrolloHumanoFacade;
    
    /**
     * Processes requests for both HTTP
     * <code>GET</code> and
     * <code>POST</code> methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            TipoDeContratacionVO tipoDeContratacionVO1 = new TipoDeContratacionVO();
            tipoDeContratacionVO1.setNombre("Docente de Planta");
            TipoDeContratacionVO tipoDeContratacionVO2 = new TipoDeContratacionVO();
            tipoDeContratacionVO2.setNombre("Docente Ocasional");
            TipoDeContratacionVO tipoDeContratacionVO3 = new TipoDeContratacionVO();
            tipoDeContratacionVO3.setNombre("Docente Catedrático");
            TipoDeContratacionVO tipoDeContratacionVO4 = new TipoDeContratacionVO();
            tipoDeContratacionVO4.setNombre("Trabajador Oficial");
            TipoDeContratacionVO tipoDeContratacionVO5 = new TipoDeContratacionVO();
            tipoDeContratacionVO5.setNombre("Administrativo");
            TipoDeContratacionVO tipoDeContratacionVO6 = new TipoDeContratacionVO();
            tipoDeContratacionVO6.setNombre("Supernumerario");
            
            PuntoDeEncuentroVO puntoDeEncuentroVO1 = new PuntoDeEncuentroVO();
            puntoDeEncuentroVO1.setDescripcion("U.P.N sede calle 72");
            PuntoDeEncuentroVO puntoDeEncuentroVO2 = new PuntoDeEncuentroVO();
            puntoDeEncuentroVO2.setDescripcion("U.P.N Sede Valmaría");
            PuntoDeEncuentroVO puntoDeEncuentroVO3 = new PuntoDeEncuentroVO();
            puntoDeEncuentroVO3.setDescripcion("Compensar sede Kennedy Transv. 78 H No 41 C sur (entre hospital de Kennedy y Av. Villavicencio)");
            PuntoDeEncuentroVO puntoDeEncuentroVO4 = new PuntoDeEncuentroVO();
            puntoDeEncuentroVO4.setDescripcion("Compensar sede Fontibón Centro comercial portal de la Sabana Av Calle 13 con cra. 104");
            PuntoDeEncuentroVO puntoDeEncuentroVO5 = new PuntoDeEncuentroVO();
            puntoDeEncuentroVO5.setDescripcion("Compensar Sede Av. 68 No 49a – 47");
            PuntoDeEncuentroVO puntoDeEncuentroVO6 = new PuntoDeEncuentroVO();
            puntoDeEncuentroVO6.setDescripcion("Av. La Sevillana – (Autopista sur con Av. Boyacá)");
            PuntoDeEncuentroVO puntoDeEncuentroVO7 = new PuntoDeEncuentroVO();
            puntoDeEncuentroVO7.setDescripcion("Sede Compensar IPS  Cra. 90 No 146B 17");
            PuntoDeEncuentroVO puntoDeEncuentroVO8 = new PuntoDeEncuentroVO();
            puntoDeEncuentroVO8.setDescripcion("Carro propio");
            
            ActividadVO actividadVO = new ActividadVO();
            actividadVO.setNombre("Evento insitucional - cultural de fin de año");
            
            FormularioVO formularioVO = new FormularioVO();
            formularioVO.setActividad(actividadVO);
            formularioVO.setCantidadDeAcompanante(2);
            formularioVO.setContenidoExtra("<img src='/SIBUFrontEnd-war/img/banner.jpg' />");
            
            Calendar fechaInicio = Calendar.getInstance();
            fechaInicio.add(Calendar.DATE, -1);
            formularioVO.setFechaInicio(fechaInicio);
            
            Calendar fechaFinal = Calendar.getInstance();
            fechaFinal.add(Calendar.DATE, 20);
            formularioVO.setFechaFinal(fechaFinal);
            
            ArrayList<PuntoDeEncuentroVO> puntosDeEncuentroVO = new ArrayList<PuntoDeEncuentroVO>();
            puntosDeEncuentroVO.add(puntoDeEncuentroVO1);
            puntosDeEncuentroVO.add(puntoDeEncuentroVO2);
            puntosDeEncuentroVO.add(puntoDeEncuentroVO3);
            puntosDeEncuentroVO.add(puntoDeEncuentroVO4);
            puntosDeEncuentroVO.add(puntoDeEncuentroVO5);
            puntosDeEncuentroVO.add(puntoDeEncuentroVO6);
            puntosDeEncuentroVO.add(puntoDeEncuentroVO7);
            puntosDeEncuentroVO.add(puntoDeEncuentroVO8);
            formularioVO.setPuntosDeEncuentro(puntosDeEncuentroVO);
            
            formularioVO.setTieneAcompanante(true);
            
            ArrayList<TipoDeContratacionVO> tiposDeContratacionVO = new ArrayList<TipoDeContratacionVO>();
            tiposDeContratacionVO.add(tipoDeContratacionVO1);
            tiposDeContratacionVO.add(tipoDeContratacionVO2);
            tiposDeContratacionVO.add(tipoDeContratacionVO3);
            tiposDeContratacionVO.add(tipoDeContratacionVO4);
            tiposDeContratacionVO.add(tipoDeContratacionVO5);
            tiposDeContratacionVO.add(tipoDeContratacionVO6);
            formularioVO.setTipoDeContratacion(tiposDeContratacionVO);
            
            try {
                desarrolloHumanoFacade.habilitarFormulario(formularioVO);
            } catch (AlreadyExistsFormularioException alreadyExistsFormularioException) {
                out.print("Problema al crear el formulario, ya existe ese indice");
            }
            
        }catch(Exception e){
        }finally {            
            out.close();
        }
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP
     * <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP
     * <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}
